package com.miukoo.aikao.qmanage.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.miukoo.aikao.core.dtos.PageReqDto;
import com.miukoo.aikao.core.dtos.PageResDto;
import com.miukoo.aikao.core.dtos.QuestionDetailDto;
import com.miukoo.aikao.core.dtos.QuestionDto;
import com.miukoo.aikao.qmanage.dto.export.QuestionExportDto;
import com.miukoo.aikao.qmanage.dto.request.QuestionQueryReqDto;
import com.miukoo.aikao.core.pojos.Question;

import java.util.List;

/**
　* 问题业务类
　* @Author miukoo<miukoo@126.com>
　* @Date 2020/11/20 11:59
　* @Version 1.0
  */
public interface QuestionService extends IService<Question> {

    /**
     * 分页查询数据
     * @param reqDto
     * @return
     */
    PageResDto<List<QuestionDto>> paging(PageReqDto<QuestionQueryReqDto> reqDto);

    /**
     * 随机抽取题库的数据
     * @param repoId
     * @param type
     * @param level  难度等级
     * @param excludes 要排除的ID列表
     * @param size
     * @return
     */
    List<Question> listByRandom(Long repoId,
                          Short type, Short level,
                          List<String> excludes,
                                Short size);

    /**
     * 问题详情
     * @param id
     * @return
     */
    QuestionDetailDto detail(Long id);

    /**
     * 保存试题
     * @param reqDto
     */
    void save(QuestionDetailDto reqDto);

    /**
     * 查找导出列表
     * @param query
     * @return
     */
    List<QuestionExportDto> listForExport(QuestionQueryReqDto query);

    /**
     * 导入Excel
     * @param dtoList
     * @return
     */
    int importExcel(List<QuestionExportDto> dtoList);
}
